Distributed devices on a network frequently request services from remote devices. In a typical scenario, a requesting device sends a request or procedure call over a network to a receiving server via a transport protocol such as the Hyper Text Transport Protocol (HTTP). The requests are connection-based and require a connection to remain open between the requesting device and the receiving server until the requested action has been performed and the response returned to the requesting device. Conventionally, the requests work on a response-request basis where each request is for a single service and the output from the performed service is sent back over the open connection.
Unfortunately, the conventional response-request model does not address situations where the requesting device needs several different services performed which are dependent upon each other. For example, the situtation where a requesting device needs the output from a first service for the performance of a second service, and the output from the second service is required for the performance of a third service. In such a situation, the requesting device is required to make three separate requests in sequence while arranging to use the output from one service as the input for another service. The three requests requires three separate connections between the requesting device and the receiving device or devices holding the services. Existing alternatives such as the Simple Object Access Protocol (SOAP) require the use of heavyweight XML parsers which represent a resource drain for smaller or busy devices.